const paginationBev = Behavior({
    data: {
        dataArray: [],
        total: null,//初始值为null更好一点，因为可能有的搜索结果本来就是0
        noneResult:false,
        loading:false
    },

    methods: {
        /**
         * 将新数据加入到旧数据的后面
         * @param dataArray
         */
        setMoreData(dataArray) {
            const tempArray = this.data.dataArray.concat(dataArray);
            this.setData({
                dataArray: tempArray
            });
        },

        /**
         * 获取当前数据的长度
         * @returns {number}
         */
        getCurrentStart() {
            return this.data.dataArray.length;
        },

        /**
         * 预先从服务器获取总数据条数，方便其他方法使用
         * @param total
         */
        setTotal(total) {
            this.data.total = total;
            if(total == 0){//如果返回长度为0，则没有书籍，也即没有搜索结果
                this.setData({
                    noneResult:true
                });
            }
        },

        /**
         * 判断是否以及从服务器获取了所有的数据
         * 如果是，就返回false，也就是没有more
         * 如果不是，就返回true，也就是还有more
         * @returns {boolean}
         */
        hasMore() {
            // if (this.data.dataArray.length >= this.data.total) {
            //     return false
            // } else {
            //     return true
            // }
            //上面的简化写法
            return this.data.dataArray.length < this.data.total;
        },

        /**
         * 清空数据，恢复初始状态，防止出现搜索页面有相同的书籍
         */
        initialize(){
            //这样做才能做到js和wxml页面都去除数据恢复初始化
            this.setData({
                dataArray: [],
                noneResult:false,
                loading:false
            });
            this.data.total = null;//total和wxml没有关联，不需要setData
        },

        /**
         * 判断是否加锁
         * @returns {boolean}
         * @private
         */
        isLocked() {
            return this.data.loading;
        },

        /**
         * 加锁
         * @private
         */
        locked() {
            this.setData({
                loading:true
            });
        },

        /**
         * 解锁
         * @private
         */
        unlocked() {
            this.setData({
                loading:false
            });
        },
    }
})

export {paginationBev}